package com.example.shopcommon.interceptor;

import feign.RequestInterceptor;
import feign.RequestTemplate;
import io.seata.core.context.RootContext;
import org.springframework.context.annotation.Configuration;

/**
 * 解决feign调用时，服务发起方没有将全局XID带到下游的服务中，导致下游服务无法找到全局事务，进而不参与到全局事务中，下游服务自然undo_log没有记录了
 */
@Configuration
public class FeignInterceptor implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {
        String xid = RootContext.getXID();
        requestTemplate.header(RootContext.KEY_XID, xid);
    }
}
